package com.liser.southernstar.net.api;

import com.liser.southernstar.BuildConfig;
import com.liser.southernstar.net.model.ApkVersion;
import com.liser.southernstar.net.model.AppRestful;
import com.liser.southernstar.net.model.AppVersion;

import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.Streaming;

/**
 * APP升级服务接口
 *
 * @author Administrator
 * @date 2020/1/16 16:17
 */
public interface AppService {

    /* 服务器地址, 在 build.gradle 中配置 */
    String BASE_URL = BuildConfig.APP_UPGRADE_ADDRESS;

    /**
     * 检查服务器apk版本
     *
     * @return 服务器apk版本信息
     */
    @GET("/Restaurant_APP_UPDATE/version.json")
    Observable<ApkVersion> version();

    /**
     * 下载apk文件
     * *@Streaming 添加这个注解用来下载大文件
     *
     * @param version 要下载的apk文件版本
     * @return ResponseBody
     */
    @Streaming
    @GET("/Restaurant_APP_UPDATE/apk/{version}")
    Observable<ResponseBody> download(@Path("version") String version);

    @GET("/update/checkVersion")
    Observable<AppRestful<AppVersion>> checkVersion(@Query("versionCode") int versionCode, @Query("appKey") String appKey);

    @Streaming
    @GET("/update/apk/{downloadUrl}")
    Observable<ResponseBody> downloadFile(@Path("downloadUrl") String downloadUrl);
}
